package com.etime.shycourse.filterMsg;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.etime.shycourse.controller.wx.rss.WXRSSService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName : filterMsgTool  //类名
 * @Description : 评论、提问的过滤器  //描述
 * @Author : W //作者
 * @Date: 2022/3/8  11:28
 */
@Service
public class FilterMsgTool {
    @Autowired
    private WXRSSService wxrssService;

    /**
     * 评论 提问可用
     * 返回通过微信官网 安全验证的数据
     * <p></p>
     *
     * @param data
     * @return ReturnMsgData
     */
    public ReturnMsgData filterMsgTools(FilterMsgData data) {
        RestTemplate restTemplate = new RestTemplate ();
        // 获取 accessToken request
        String accessToken = wxrssService.getAccessToken ();
        ReturnMsgData msgData = new ReturnMsgData ();
        String url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + accessToken;
        ResponseEntity<String> responseEntity = restTemplate.postForEntity (url, data, String.class);
        /**
         * 进行json数据 转换
         * */
        String body = responseEntity.getBody ();
        JSONObject object = JSON.parseObject (body);
        try {
            /*
                errcode的值 表示：
                0	成功
                -1	系统繁忙，此时请开发者稍候再试
                40001	token 无效
                40003	openid无效
                40129	场景值错误（目前支持场景 1 资料；2 评论；3 论坛；4 社交日志）
                43104	appid与openid不匹配
                43302	方法调用错误，请用post方法调用
                44002	传递的参数为空
                47001	传递的参数格式不对
                61010	用户访问记录超时（用户未在近两小时访问小程序）
                其他	系统错误
            */
            msgData.setErrcode (object.getInteger ("errcode"));
            msgData.setErrmsg (object.getString ("errmsg"));
            msgData.setTrace_id (object.getString ("trace_id"));
            // 综合结果
            JSONObject result = object.getJSONObject ("result");
            if (msgData.getErrcode () == 0) {
                Rresult rresult = new Rresult ();
                rresult.setLabel (result.getString ("label"));
                rresult.setSuggest (result.getString ("suggest"));
                msgData.setResult (rresult);
            }
        } catch (Exception e) {
            System.err.println ("filters=" + object.toString () + ".json转换成实体类出错");
            e.printStackTrace ();
        }
        return msgData;
    }
}

